package com.neoCalf.neoChat.service;

import com.neoCalf.neoCommon.entity.ChatMessage;
import com.neoCalf.neoCommon.entity.ChatSession;
import com.neoCalf.neoCommon.entity.Session;

import java.util.List;

public interface ChatService {
    /**
     * 添加会话
     *
     * @param session
     * @return
     */
    void addSession(Session session);

    /**
     * 批量添加会话
     *
     * @param sessionList
     */
    void addSessionList(List<Session> sessionList);

    /**
     * 添加聊天会话
     *
     * @param chatSession
     * @return
     */
    void addChatSession(ChatSession chatSession);

    /**
     * 添加聊天消息
     *
     * @param chatMessage
     * @return
     */
    void addChatMessage(ChatMessage chatMessage);

    /**
     * 更新聊天会话
     *
     * @param chatSession
     * @return
     */
    void updateChatSession(ChatSession chatSession);

    /**
     * 查询会话列表
     *
     * @param userId
     * @return
     */
    List<Session> findSessionList(String userId);

    /**
     * 批量查询聊天消息
     *
     * @param list
     */
    List<ChatMessage> findChatMessageList(List<String> list);

    /**
     * 删除双方所有会话
     *
     * @param sessionId
     */
    void delContactSession(String sessionId);

    /**
     * 更新会话
     *
     * @param session
     */
    void updateSession(Session session);

    /**
     * 批量删除群聊会话
     *
     * @param list
     * @param groupId
     */
    void delGroupSessionBatch(String[] list, String groupId);
}
